﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Herboristeria.Negocio;

namespace Herboristeria.Aplicacion.Formularios.Login
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }



        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnInicio_Click(object sender, EventArgs e)
        {
            try
            {
                //SI LOS CAMPOS ESTAN RELLENOS
                if (Validar())
                {
                    UsuariosManager usuariosManager = new UsuariosManager();
                    DataSet ds = usuariosManager.ObtenerUsurario_porNombreUsuario(txtNombreUsuario.Text);

                    if (ds.Tables.Count > 0)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            string usuario = ds.Tables[0].Rows[0]["username"].ToString();
                            string contraseña = ds.Tables[0].Rows[0]["password"].ToString();
                            if (usuario == txtNombreUsuario.Text &&
                                contraseña == txtPassword.Text)
                            {
                                //SI NO ESTA CONECTADO CONECTAMOS
                                if(!(bool)ds.Tables[0].Rows[0]["conectado"])
                                {   
                                    //CONECTAR USUARIO
                                    bool conectado = false;
                                    conectado = usuariosManager.ConectarUsuario(txtNombreUsuario.Text);
                                    if(conectado)
                                    {
                                        //Mensaje de Bienvenida y Envio a pantalla principal.
                                        MessageBox.Show("Bienvenid@ " + usuario + ".","Bienvenid@");
                                        frmPrincipal principal = new frmPrincipal();
                                        principal.Tag = usuario;
                                        LimpiarCampos();
                                        principal.ShowDialog();

                                    }
                                    else
                                    {
                                        LimpiarCampos();
                                        MessageBox.Show("Ha habido un error en la conexion. Contacte con administracion.", "Error en la Conexión");
                                    }
                                }
                                else
                                {
                                    LimpiarCampos();
                                    MessageBox.Show("Ya hay un usuario con ese login conectado. Si no es usted contacte con la administración.", "Usuario conectado");
                                }
                            }
                            else
                            {
                                //ERROR EN LA VALIDACION DE USUARIO Y CONTRASEÑA
                                LimpiarCampos();
                                MessageBox.Show("El usuario o la contraseña son incorrectas. Intentelo de nuevo.", "Inicio Sesion incorrecto");

                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Faltan Campos por rellenar.", "Validaciones");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void LimpiarCampos()
        {
            txtNombreUsuario.Text = String.Empty;
            txtPassword.Text = String.Empty;
        }

        private bool Validar()
        {
            bool correcto = true;

            correcto = !(txtNombreUsuario.Text == String.Empty);

            correcto = !(txtPassword.Text == String.Empty);

            return correcto;
        }

        private void btnRecuperar_Click(object sender, EventArgs e)
        {
            frmRecordar frmRec = new frmRecordar();
            frmRec.ShowDialog();
        }

    }
}
